--======================================================================
--（c）copyright 2016 175game.com All Rights Reserved
--======================================================================
-- anthor: hy
-- descrip: 通用模块的协议
--======================================================================

local Tool = Import("logic/common/tool").CTool

Cprotocol = class()
Cprotocol.__name = "Cprotocol"

Cprotocol.Init = function(self)

end

-----------------------------------------------------------
--网络内置事件,ID号为101~103

--连上服务器时回调
Cprotocol.OnConnect = function(self)
    gGame:GetNetMgr():OnConnect()
end

--断开服务器时回调
Cprotocol.OnDisconnect = function(self)
    gGame:GetNetMgr():OnDisconnect()

end

--产生异常时回调
Cprotocol.OnException = function(self)
    gGame:GetNetMgr():OnException()
end

--协议下发，当前后端协议配置的MD5不一致时下发
Cprotocol.rpc_client_update_pto = function(self, protocolConfig)
	--print("GOT: rpc_client_update_pto:", protocolConfig )
    -- 只打印长度，不打印内容
	print("GOT: rpc_client_update_pto:", string.len(protocolConfig) )
	local rpcPath = nil
	local luaListJsonPath = nil

	if Application.isEditor then
		rpcPath = (Application.dataPath).."/code/Lua/logic/config/rpc/rpc_lua_table.lua"
		local f = io.open(rpcPath, 'wb')
		f:write(protocolConfig)
		f:flush()
		f:close()
	else
		
	end

	gGame:GetProtocolMgr():GetRpc():LoadConfig(protocolConfig)

	-- if rpcPath then
	-- 	local f = io.open(rpcPath, 'wb')
	--     f:write(protocolConfig)
	--     f:flush()
	--     f:close()
	--     if luaListJsonPath then
	-- 		local luaListJsonContent = UtilCommon.ReadAllTextFromFile(luaListJsonPath)
	-- 	    local luaListJsonTable = Tool.Json2Table(luaListJsonContent) or {}
	-- 	    if luaListJsonTable.files and luaListJsonTable.files["logic/net/rpc_lua_table.lua"] then
	-- 	    	local rpcContent = UtilCommon.ReadAllTextFromFile(rpcPath)
	-- 			local rpcMd5 = UtilCommon.HashToMD5Hex(rpcContent)
	-- 	    	luaListJsonTable.files["logic/net/rpc_lua_table.lua"] = rpcMd5
	-- 	    	luaListJsonContent = Tool.Table2Json(luaListJsonTable)

	-- 	    	local f = io.open(luaListJsonPath, 'wb')
	-- 		    f:write(luaListJsonContent)
	-- 		    f:flush()
	-- 		    f:close()

	-- 			local versionPath = (Application.dataPath).."\\StreamingAssets\\version"
	-- 		    local versionContent = UtilCommon.ReadAllTextFromFile(versionPath)
	-- 		    local versionContentTb = versionContent:split("%.")
	-- 		    if versionContentTb then
			    	
	-- 		    	local versionContentLen = #versionContentTb
	-- 		    	table.print(versionContentTb)
	-- 		    	local lastV = tonumber(string.sub(versionContentTb[versionContentLen], 1, #versionContentTb[versionContentLen] - 1))
	-- 		    	if lastV then
	-- 		    		versionContentTb[versionContentLen] = lastV + 1

	-- 		    		local newVersionContent = ""
	-- 		    		for k,v in ipairs(versionContentTb) do
	-- 		    			newVersionContent = newVersionContent .. v
	-- 		    			if k ~= versionContentLen then
	-- 		    				newVersionContent = newVersionContent .. "."
	-- 		    			end
	-- 		    		end
			    		
	-- 		    		local f = io.open(versionPath, 'wb')
	-- 				    f:write(newVersionContent)
	-- 				    f:flush()
	-- 				    f:close()
	-- 		    	end
	-- 		    end
	-- 	    end
	--     end

	--     gGame:GetUIMgr():OpenAlertDialog("提示", "协议配置下发更新成功，请重新启动游戏！", "确定")
	-- end
end

--服务器时间
-- int time
Cprotocol.rpc_client_servertime = function(self, unixtime)
	-- local timeOffset = unixtime - os.time()
	local loginData = gGame:GetDataMgr():GetLoginData()

	--loginData:SetTimeOffset(timeOffset, unixtime)
	loginData:SetServerBeginTime(unixtime)

	local banquetData = gGame:GetDataMgr():GetPlayOrgBanquetData()
	if banquetData then
		banquetData:SetServerTime()
	end
end
